# 1. 定义函数时,要先定义后调用
# NameError: name 'func1' is not defined
# func1() 函数需要先定义后调用

def func1():
    print('hello world')
    print('hello python')


func1()

print('----------------------------------')

# 2. 如果出现同名函数, 后定义的函数,会覆盖先定义函数的功能
def func1():
    print('红军不怕远征难')
    print('万水千山只等闲')


func1()

print('----------------------------------')
# 3. 如果出现了同名的变量,一样会覆盖函数定义
func1 = 'chuanzhi'

# TypeError: 'str' object is not callable
# 由于func1中储存了字符串类型数据, 覆盖了之前函数的功能,所以此处调用的是字符串,不能执行函数功能.
# func1()
print(func1)  # chuanzhi
